Facial feature extraction method and apparatus for a neural network acoustic and visual speech recognition system

ABSTRACT

A facial feature extraction method and apparatus uses the variation in light intensity (gray-scale) of a frontal view of a speaker&#39;s face. The sequence of video images are sampled and quantized into a regular array of 150×150 pixels that naturally form a coordinate system of scan lines and pixel position along a scan line. Left and right eye areas and a mouth are located by thresholding the pixel gray-scale and finding the centroids of the three areas. The line segment joining the eye area centroids is bisected at right angle to form an axis of symmetry. A straight line through the centroid of the mouth area that is at right angle to the axis of symmetry constitutes the mouth line. Pixels along the mouth line and the axis of symmetry in the vicinity of the mouth area form a horizontal and vertical gray-scale profile, respectively. The profiles could be used as feature vectors but it is more efficient to select peaks and valleys (maximas and minimas) of the profile that correspond to the important physiological speech features such as lower and upper lip, mouth corner, and mouth area positions and pixel values and their time derivatives as visual vector components. Time derivatives are estimated by pixel position and value changes between video image frames. A speech recognition system uses the visual feature vector in combination with a concomitant acoustic vector as inputs to a time-delay neural network.

This application is a continuation of application Ser. No. 08/130,287, filed Oct. 1, 1993 (now abandoned), which was a continuation-in-part of application Ser. No. 07/889,619, filed May 26, 1992, now U.S. Pat. No. 5,586,215.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention pertains to the field of machine speech recognition and, more specifically, to facial feature extraction for the enhancement of acoustic speech recognition by using facial features in conjunction with acoustic data in a neural network classification system.

2. Background to the Invention

The goal of automatic or machine speech recognition is to design a system that approaches the human ability to understand spoken language amidst variations in speaker accents, gender, speech rate, degree of coarticulation, all in the presence of acoustic distractors and noise. Current automated systems are of lower accuracy and robustness than that which is necessary to fulfill the vast need in such applications as computer speech-to-text conversion, automatic translation and speech based control systems. Representative approaches include hidden Markov models in which transition probabilities are encoded in links between nodes (states) representing phonemic segments, and "blackboard" methods in which multiple special purpose phonological, lexical and grammatical based subsystems are combined to work synergistically to maximize speech recognition score. More recently, neural networks have been applied with some success in limited domains, for example, as described by A. Waibel in an article entitled "Modular Construction of Time-Delay Neural Networks for Speech Recognition," published in Neural Computation 1, 39-46 (1989).

Any predictive source of information and any constraints that could be reasonably incorporated into an artificial system would tend to increase the recognition accuracy and thus be desirable to include in a speech recognition system. Traditionally, most research has focussed on the inclusion of high level linguistic information such as grammatical and syntactical data. It is clear that humans can employ information other than the acoustic signal in order to enhance understanding. For example, heating impaired humans often utilize visual information for "speech reading" in order to improve recognition accuracy. See, for example, Dodd, B. and Campbell, R. (eds.), "Hearing by Eye: The Psychology of Lipreading," Hillsdale, N.J., Lawrence Erlbaum Press (1987); or DeFilippo, C. L. and Sims, D. G. (eds.), "New Reflections on Speechreading," special issue of The Volta Review 90(5), (1988).

Speech reading can provide direct information about speech segments and phonemes, as well as about rate, speaker gender, and identity, and subtle information for separating speech from background noise. The well-known "cocktail party effect," in which speech corrupted by crowd noise is made significantly more intelligible when the talker's face can be seen, provides strong evidence that humans use visual information in speech recognition.

Several speech reading systems have been described recently including:

a) Petajan, E. D., et al., "An Improved Automatic Lipreading System to Enhance Speech Recognition," ACM SIGCHI-88, 19-25 (1988);

b) Pentland, A., et al., "Lip Reading: Automatic Visual Recognition of Spoken Words," Proc. Image Understanding and Machine Vision, Optical Society of America, Jun. 12-14 (1984); and

c) Yuhas, B. P., et al., "Integration of Acoustic and Visual Speech Signals Using Neural Networks," November 1989, IEEE Communications Magazine (1989).

Petajan, et al. used thresholded images (pixels) of a talker's face during the production of a word together with a dictionary of pre-stored labelled utterances and a standard distance classifier for visual recognition.

Pentland, et al. used an optical flow technique to estimate the velocities of the upper lip, lower lip, and the two corners of the mouth from the raw pixel video image of the mouth. They then used a principle components analysis and a minimum distance classifier on three and four digit phrases.

Yuhas, et al. trained a neural network using static images of the mouth shape for vowel recognition together with a controller with free parameters for adjusting the relative weights of visual and auditory contributions for best recognition in the presence of different levels of acoustic noise.

SUMMARY AND OBJECTS OF THE INVENTION

According to the present invention, a speech recognition system is provided wherein acoustical and visual speech signals are both processed so as to enhance the likelihood of a proper classification of the speech utterance.

One object is to improve the performance of speech recognition systems that only use acoustic or visual lip position information particularly in an adverse noisy environment.

Another object is to provide a novel time delay neural network speech reading system for classifying utterances using only visual data.

Another object is to augment an acoustic speech recognition system by using a time delay neural network visual speech recognition system in conjunction with the acoustic speech recognition system.

Another object is to provide the classifier with a continuous stream of related visual and acoustic data from which the acoustical utterance may be detected and classified.

Another object is to provide a time delay neural network classifier architecture that supports gradient descent or other learning methods such as backpropagation training.

Another object is to provide acoustical and visual signal preprocessing prior to the time delay neural network classifier.

Another object is to provide an output classification that is a probability distribution representing the probability of each possible candidate utterance having occurred in a given time interval.

Another object is to provide a simple method for extracting dynamic facial visual information by means of a selected set of facial markers.

A speech recognition system for recognizing utterances belonging to a preestablished set of allowable candidate utterances comprises an acoustic feature extraction apparatus, a dynamic visual feature extraction apparatus, and a neural network classifying apparatus. The acoustic feature extraction apparatus converts acoustic speech signals representative of an utterance into a corresponding spectral feature vector set. The dynamic visual feature extraction apparatus converts the dynamic facial features associated with the generation of the acoustic utterance into a dynamic visual feature vector set. The neural network classifying apparatus converts the dynamic acoustic and visual feature vectors into a conditional probability distribution that describes the probability of each candidate utterance having been spoken given the observed acoustic and visual data.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an acoustic and visual dynamic speech recognition system.

FIG. 2 shows the placement of visual fiducial markers on and about the lips of the speaker.

FIG. 3 shows a frontal view of a speaker's face and identifies key physiological features.

FIG. 4 shows the geometry for establishing the axis of symmetry and the ROI.

FIG. 5 shows a pixel-defined perimeter for the left eye region.

FIGS. 6a-6d show a closed and open mouth gray-scale vertical profile and their relationship to the facial features.

FIGS. 7a and 7b show a closed and open mouth horizontal gray-scale profile along the mouth line.

FIGS. 8a and 8b identify the significant peaks and valley of the vertical and horizontal gray-scale profiles.

FIG. 9 shows a reduced set of data points used in generating a visual feature vector.

FIG. 10 shows a speech classification system using video images without fiducial markers.

FIG. 11 shows the relationship between the uniform mel frequency bands and the corresponding non-uniform linear frequency bands.

FIGS. 12a and 12b show two equivalent implementations of a single layer time delay neural network (TDNN).

FIGS. 13a and 13b show an electrical analog of a typical utterance together with its spectrogram.

FIG. 14 shows the architecture of a visual only (VO) multilayer TDNN.

FIG. 15 shows a hardware conserving TDNN architecture.

FIG. 16 is a block diagram of an acoustic and visual speech recognition system that combines the output of separate acoustic and visual recognition systems.

FIG. 17 shows a hardware conserving embodiment of a AxV TDNN speech classifier.

FIG. 18 shows a hardware conserving embodiment of another TDNN speech classifier.

FIG. 19 shows a hardware conserving embodiment of a full AV speech classifier.

FIG. 20 shows the architecture of a typical McCulloch-Pitts type artificial neuron cell.

FIGS. 21a, 21b, and 21c show examples of activation function transfer characteristics.

FIG. 22 shows the architecture of a typical sigma-pi (ΣΠ) artificial neuron cell.

FIG. 23 is a set of learning curves showing the progress of training.

FIGS. 24a-24d show a set of confusion matrices for four systems.

DETAILED DESCRIPTION

Several embodiments of speech recognition systems are described in which each system is trained to recognize a limited set of speech utterances. The various embodiments differ in the type of information used and/or in the way the information signals are processed. In each case, the object of the speech recognition system is to produce at the classifier output a probability distribution associated with each of the possible candidate utterances.

For the sake of clarity in the following description, specific examples of the invention embodiments for use in recognizing one out of ten candidate utterances are used. It should be recognized, however, that this does not necessarily constitute any limitation on the number or types of utterances that may be accommodated.

The present invention is a system for speech recognition that uses dynamically varying acoustic and visual signals for improved speech recognition performance. FIG. 1 shows a simplified block diagram of an embodiment. Acoustic speech data is collected by microphone 28 which, by means of output line 22, applies the electrical signal replica of the acoustic information to spectrum analyzer 24 where the acoustic energy is applied to a bank of 14 filters. The short-term time-varying energy output of each of the 14 filters is measured, normalized, and applied to the 14 output lines 25 as a time varying vector with 14 components.

Simultaneously, in one embodiment video camera 27 captures the associated visual data generated from a set of markers used to describe the lip and mouth movement generated by a given speech utterance. This raw video information is delivered to the lip and mouth position vector generator 14 where the time varying position of the lip and mouth markers is normalized for head tilt and magnitude yielding a time varying vector on the five output lines 15 that describes the lip and mouth activity associated with the acoustic utterance.

Lip and mouth position vector generator 14 comprises a tracking system 16 for tracking the position of light emitting or light reflective fiducial markers placed on and around the lips of the speaker, and vector generator 19 that extracts and normalizes select distances between fiducial markers. This apparatus was implemented by using the computer based two-dimensional motion analysis system manufactured by Motion Analysis Corporation, 3650 North Laughlin Road, Santa Rosa, Calif. 95403, under the trademark ExpertVision.

The ExpertVision video tracking system uses video equipment to capture the movements of objects. Reflective markers are placed at locations of interest. The system can capture and analyze data recovered from a video camera (or tape) at the standard video frame rate of 60 Hz or up to 200 Hz.

The raw video data from video camera are fed to the video processor subsystem which isolates the marker images and converts them to digitized video outlines in real time. The video processor provides the function of tracking system 16 by producing x and y coordinates of the marker edges to the host computer for subsequent processing. The detected screen positions, at video frame rate intervals, are expressed in a rectangular grid 256 pixels wide (in the x direction) and 240 pixels high (in the y direction).

The video outlines are reduced to centroids by the host computer software. The centroid of each reflective marker is determined by averaging the coordinates of the individual pixels forming the outline of the marker. The centroids of each marker are tagged and linked from frame-to-frame to form a trajectory. Additional host computer software is used to generate and normalize the set of visual distance vectors as described below and functionally indicated by vector generator 19 of FIG. 1.

Both of the time varying vectors on lines 15 and 25 are applied to a time delay neural network ("TDNN") speech classifier 200 wherein the neural network produces ten output signals on lines 17. Each of the output lines 17 is exclusively associated with one out-of-ten possible speech utterances that the TDNN 200 is trained to recognize. The signal magnitude on each of the ten lines is representative of the probability that its associated utterance was made. Output network 18 (shown dotted) is an optional one-out-of-ten classifier (well-known in the art) that selects the most probable utterance by choosing the utterance corresponding to the highest level (probability) line of the ten lines 17. Because TDNN classifier 200 is capable of examining a time varying data stream, the exact knowledge of the position in time of the acoustic and visual information is not required.

FIG. 2 shows the placement of the ten reflective markers (M0,9) on each speaker's face that were used in one embodiment. The positions of the ten fiducial markers were: the tip of the nose (M0), the center of the chin (M1), the left corner of the mouth (M2), the right corner of the mouth (M3), the top center of the lips (M4), the bottom center of the lips (M5), and four points on the lips which are approximately halfway between the center of the top lip and the left and right mouth corners (M6, M7), and between the center of the lower lip and the left and right corners of the mouth (M8, M9). This set of fiducial markers were used to establish the general shape and movement of the lip and mouth area. This particular arrangement has the beneficial advantage of simplicity when compared to the computationally intensive problem of deriving the same information from the massive volume of data generated by sequences of video pixel images.

The position of the reflective fiducial markers on each talker's face were recorded by video camera 27 at a 60 Hz frame rate and then transformed by position vector generator 14 into visual feature vectors having five components as shown in the table below.

    ______________________________________                                         No.  Component Feature                                                                              Comments                                                  ______________________________________                                         1    Nose-chin distance                                                                             (M0-M1)                                                   2    Mouth-opening   (M4-M5)                                                   3    Horizontal mid-lip distance                                                                    Average separation of (M6-M7) and                                              (M8-M9)                                                   4    Vertical mid-lip distance                                                                      Average separation of (M6-M8) and                                              (M7-M9)                                                   5    Mouth corner separation                                                                        (M2-M3)                                                   ______________________________________                                    

This particular choice of vector component features was made so that the various distances across the mouth and face can readily be made independent of shifts and rotations of the head. This was accomplished within vector generator 14 by first rotating the head so that a line drawn through fiducial markers M0 and M1 was vertical, then the three vertical distances (M0-M1, M4-M5, and the average distance of M6-M8 and M7-M9), and the two horizontal distances (M2-M3, and the average distance of M6-M7 and M8-M9) were computed.

Further normalization of the component features was required because of cross-subject differences in facial measurements. Also, it was noted that for each speaker, the mouth was in a partially open rested position at times. The first normalization step provided a set of facial measurements characteristic of the size of each speaker's face by averaging the vectors corresponding to all rested position times. Then, each visual vector in the sequence was normalized by subtracting the rest value average from each component and scaling the magnitude so that each component value is assigned a value of plus or minus one when its level corresponds to plus or minus two standard deviations from the mean.

Although the specific set of facial movement features enumerated above were used in reducing the speech recognition to practice, other equally representative sets of dynamic measurements could be used to convey the essential visual information. This could result in a different, but effective, dynamic visual data vector. For example, a video camera could produce a dynamic pixel image of the speaker's mouth and lips. The dynamic shape could be characterized by measuring the distance between the shadows below the upper and lower lips caused by overhead lighting. A set of such measurements across the mouth would describe the dynamic shape.

A system for extracting dynamic facial feature vectors from video camera images that is computationally simple and only depends on gay-scale (light and shadow) information has been implemented.

This system employs an NTSC (National Television Standards Committee) camera to capture the frontal image of a speaker's face which is illuminated by an overhead source of light. The gray-scale video images are captured by the video camera and subsampled to give a 150×150 pixel image at 30 frames (e.g., images) per second. FIG. 3 shows a facial front-view image illuminated from above and the major shadows and highlights used for facial feature extraction that include: eye area socket shadows 10, nose highlight area 20, nose and nostril shadow area 30, upper lip highlight area 40, mouth shadow area 50, lower lip highlight area 60, lower lip shadow area 70, and upper chin highlight area 80. The eye area shadow areas 10 lie along eye line 11 which is orthogonal to axis of symmetry 9 that bisects the frontal view. Mouth line 51 passes through the center of mouth shadow area 50 at right angles to the axis of symmetry.

Critical speech related highlights are nose area 20, upper lip area 40, lower lip area 60, and chin area 80, together with their respectively related shadow areas 30, 50, and 70. In order to locate these critical features, eye area shadows 10 are used to establish eye line 11.

However, before proceeding with facial feature extraction, it has been found beneficial to preprocess the video images in order to reduce spatial noise by using a 3×3 pixel two-dimensional convolution kernel having a Fourier transform low-pass filter characteristic.

Next, an edge-sharpening filter with a 3×3 pixel convolution kernel is applied to resharpen the shadow to light transitions that may have been "softened" by the low-pass filter operation.

This operation is followed by an edge-smoothing filter having an effective 9×9 pixel convolution kernel to reconstruct an image with smooth transitions. A final preprocessing step involves temporal smoothing over sets of three adjacent video image frames.

Typical convolution kernels used in preprocessing of pixel image frames are as follows:

1) a 3×3 spatial low-pass Gaussian filter kernel with a standard deviation of 0.391 pixels having the following distribution of values:

    ______________________________________                                         1        4              1                                                      4        12             4                                                      1        4              1     ;                                                ______________________________________                                    

2) a 3×3 spatial edge enhancement filter kernel with the following distribution:

    ______________________________________                                         1        1              1                                                      1        -7             1                                                      1        1              1     ;                                                ______________________________________                                    

3) a 16×16 spatial low pass implemented by applying an order 1 binomial filter

(1, 1) repeatedly 15 times along and across each raster line resulting in an effective kernel with an approximate Gaussian set of weights; and

4) a temporal filter kernel for filtering corresponding pixel elements between three adjacent with kernel weights of (1, 4, 1).

Because these three filter operations only involve linear processes, the various filter operations may be applied in any order or even combined into a two-step process having, say, an edge-sharpening filter step and a single noise-reduction and smoothing filter step, or combined into a single filter step that uses a single 9×9 pixel convolution kernel that results when the three two-dimensional kernels are convolved into a single equivalent filter kernel.

After the above spatial filtering operations, the image gay-scale is scanned to determine the maximum light intensity value, I_(max), and the minimum intensity (maximum shadow) value, I_(min). A threshold intensity value, I_(T), is established which lies between the two extremes (I_(max) and I_(min)) and is used to select shadow areas that have a light intensity of less than I_(T). A midrange value of I_(T) =(I_(max) -I_(min))/2 has been found useful for this purpose. Because the eye and mouth shadows tend to have the deepest shadows, thresholding results in defining three regions, as shown by the cross-hatched areas in FIG. 4: eye area shadows 10 and mouth area shadow 50.

Because mouth area shadow 40 may lack symmetry about a vertical line due to head tilt, physiological asymmetry, or illumination, eye line 11 is first established in order to locate axis of symmetry 9.

Eye shadow areas 10 are readily identified because they occur in pairs and for approximately vertical orientation of the actual axis of symmetry are located in close horizontal proximity. The center of each eye shadow area 10 is established by finding the centroid of each relative to an arbitrarily selected coordinate system, (x, y), centered at coordinates (0, 0) as shown in FIG. 4. For example, the centroid (x_(l), y_(l)) associated with left eye shadow area 10 is given by ##EQU1## where (x_(lk), y_(lk)) are the coordinates of the k^(th) pixel centroid of left eye shadow area 10, w_(lk) is a wright assigned to the k^(th) pixel, and K₁ is the number of pixels included in the left eye shadow area.

Similarly, the coordinates, (x_(r), y_(r)), of right eye shadow 10 may be expressed as ##EQU2## where (x_(rk), y_(rk)) are the coordinates of the k^(th) pixel centroid of the right eye shadow area, w_(rk) is a weight assigned to the k^(th) pixel, and K_(r) is the number of pixels included in right eye shadow area 10.

The weights, {w_(lk) } and {w_(rk) }, are typically chosen to represent the value of the shadow in the k^(th) pixel which may be defined as the complement of the illumination values, I_(lk) and I_(rk), as follows:

    w.sub.lk =I.sub.max -I.sub.lk

and

    w.sub.rk =I.sub.max -I.sub.rk

where I_(max) is the previously found maximum illumination intensity and I_(lk), I_(rk) are the illumination intensity value of the k^(th) pixel of the left and right eye shadow areas, respectively.

Other definitions for the weights, {w_(lk) } and {w_(rk) }, may be defined. For example, the compliment may be found by using I_(1max) and I_(rmax) which respectively represent the maximum illumination values of the left and right eye shadow areas. Also, weights could include scaling factors that represent the significance of the k^(th) pixel location by assigning greater values to pixels located at coordinates that have a greater likelihood of being eye shadow areas. Thus, if the weights were scaled by 0 when the pixel at the corresponding (x, y) coordinates was unlikely to contain an eye shadow pixel and scaled by 1 otherwise, this would provide an additional thresholding in isolating the eye shadow areas. Or, it could be used to replace the initial thresholding used to form the image of FIG. 4.

If the weights, {w_(lk) } and {w_(rk) }, are assigned equal values, say, unity, the coordinates of the centroids are only determined by the pixel distribution of the left and right eye shadow areas of FIG. 5 and are simplified as follows: ##EQU3##

A further simplification has been found to substantially reduce the processing required for determining the centroids and yet provides acceptable results by restricting the summation over only those pixels that define the edge (perimeter) of the thresholded left and right eye shadows, as shown in FIG. 5 for the left eye shadow area.

Having found the left and right eye area coordinates, axis of symmetry 9 can be established by first constructing eye line 11 passing through the centroids (x_(r), y_(r)) and (x_(l), y_(l)). By bisecting the line segment between the two centroids at point 12 and constructing a line at right angles through point 12, the axis of symmetry 9 is established.

Thus, eye line 11 is related to the centroids by the following expression: ##EQU4##

The corresponding expression for axis of symmetry 9 is ##EQU5##

The centroid of mouth shadow area 40 is found by use of expressions similar to those used previously so that the centroid, (x_(m), y_(m)) of mouth area 40 is ##EQU6## where (x_(mk), y_(mk) are the coordinates of the k^(th) pixel centroid, w_(mk) is the weight associated with the k^(th) pixel, and the summation is over all mouth area pixels included in the calculation. The weights, {w_(mk)), may assume different interpretations as explained above for the eye shadow area centroids and, in one implementation, the summation is limited to those pixels that define the perimeter of the mouth shadow area as shown in FIG. 4.

Having determined the mouth area centroid, (x_(m), y_(m)), mouth line 51 may be constructed by drawing a line through the centroid that is also perpendicular to axis of symmetry 9 and as expressed as follows: ##EQU7##

An area, labeled the region of interest (ROI), can now be defined as a rectangle with two sides (52 and 53) parallel to eye line 11 or, equivalently, to mouth line 51 and evenly spaced above and below mouth line 51. The other two sides (54 and 55 ) are parallel to and equally displaced to either side of axis of symmetry 9.

The dimensions of ROI are made sufficient to include the nose tip highlight area 20, nose and nostril area 30, upper lip area 40, mouth area 50, lower lip area 70, and upper chin area 80. As shown in FIG. 6, a practical size for ROI has been found to be 32×64 pixels.

The pixels belonging to ROI may be found by defining two coordinate systems (x, y) and (x', y') where the origin of the (x', y') system may conveniently be taken as the intersection of axis of symmetry 9 and mouth line 51, labeled (x₀, y₀) in FIG. 4. Coordinates in the x, y system, corresponding to a point in the x', y' system, can be obtained by a rotation and shift of the coordinates in the x', y' plane. Thus, ##EQU8## where θ=tan⁻¹ {(y_(l) -y_(r))/(x_(l-x) _(r))}, represents the desired transformation for converting any coordinates in ROI referenced to system (x', y') into coordinates referenced to system (x, y), which is the "natural" coordinates of the video image pixels. Thus, by choosing the origin of system (x, y) at a convenient point of the video image raster, such as a corner, the points of interest within ROI can be readily accessed.

If the angle of rotation, 1, is small (θ<<π/2 radians), sinθ≈0 and cosθ≈1, so that ##EQU9## Thus, if the speaker's head axis of symmetry is constrained to be within a small angle of the vertical, a simple relationship between the points of interest in the (x', y') system are readily converted to the (x, y) system of coordination requiring two additions, at most.

Because the raster scans have been subsampled to produce a 150-pixel wide image, all coordinate information obtained by calculations such as discussed above must be rounded to the closest pixel coordinates when converting from the (x', y') system of coordinates to the (x, y) coordinate system.

FIGS. 6a and 6c show two typical scans along axis of symmetry 9. FIG. 6a shows the variation of gray-scale along the axis of symmetry shown for the closed mouth condition represented in FIG. 6b. The vertical dimension of ROI, in this example, is 63 pixels. The height of the bars corresponding to each pixel represents the intensity of the illumination (compliment of gray-scale). Similarly, FIGS. 6c and 6d show a typical scan for the open mouth condition. The physiological change is clearly reflected in the changes of the two bar graphs, notably the shift in the valleys and peaks in the vicinity of mouth line 51.

FIG. 7a and 7b show the corresponding closed and open mouth conditions as represented by the bar graphs of image scans taken along mouth line 51 in the ROI shown in FIG. 6b and 6d, respectively. Again, the physiological changes are clearly reflected in the change of the central peaks and valleys.

FIG. 8a shows a typical vertical gray-level scan and shows the selection of pixel values of gray-scale associated with each significant peak and valley. Peaks are labeled P1, P2, and P3, while valleys are labeled V1, V2, and V3. FIG. 8b shows the identification of the two significant valleys V4 and V5 representing the mouth corner positions as a function of pixel position.

In this manner (i.e., peak and valley identification), a vertical profile scan vector of 64 pixels is reduced to six significant elements (P1-3 and V1-3) and the 32 pixel horizontal scan is reduced to two significant elements. This data constitutes a set of elements of a visual speech vector and may be used for speech recognition.

However, a further reduction can be made by restricting the pixel image vector to components more closely related to the mouth. It has been found that effective speech classification (recognition) may be made by using the five points shown in FIG. 9 where the mouth corners labeled 1' and 2', respectively correspond to V4 and V5 of FIG. 8b and where upper lip, mouth, and lower lip positions labeled 3', 4', and 5', respectively correspond to P1, V2, and P2 of FIG. 8a. This five-element data set could also be used as a visual feature vector suitable for processing by a speech recognition classifier. Alternatively, this five-element data set could be additionally processed before applying it to a speech classification unit with the expectation that the additional processing would reduce the complexity of the classifier unit.

In one preferred embodiment that used the five positions of P1, V2, P2, V4, and V5, additional feature vector elements were created from the frame-to-frame (image-to-image) observations of P1, V2, P2, V4, and V5. The seventeen additional elements are as follows:

1) the distance between V4 and V5 (in pixel units) representing the separation between the left and right mouth corners;

2) the distance between P1 and P2 representing the vertical separation between the top and bottom lips;

3) vertical speed of P1, V2, and P2 based on interframe changes ΔP₁ /Δt, ΔV₂ /Δt, and ΔP2/Δt, where Δt is the interframe interval (1/30 sec);

4) gray level value G(P1), G(V2), and G(P2);

5) changes in gray level versus time given by G(P1)/Δt, G(V2)/Δt, and G(P2)/Δt;

6) horizontal speed ΔV4/Δt and ΔV5/Δt;

7) gray levels G(V4) and G(V5); and

8) change in gray levels versus time given by ΔG(V4)/Δt and ΔG(V5)/Δt.

The resulting visual feature vector includes 22 elements which are used as the visual data vector input to a TDNN speech classifier as shown in FIG. 10.

Video camera 27 creates an electrical 150×150-pixel image (with a plurality of horizontal lines) of the speaker's face which is then supplied to visual feature vector generator 90 that includes spatial and temporal filters 91 for preprocessing the image. Thresholding, ROI selection, and coordinate conversion is performed in unit 92, the selected elements along the axis of symmetry and the mouth line are passed onto visual feature processor 93 that produces the 22-element visual feature vector that is then supplied as an input to the TDNN speech classifier 200.

Referring back to FIG. 1 of the combined acoustic and visual speech recognition system, the acoustic data signals occurred within a time window of one second duration and were taken simultaneously by a cardoid microphone 28, and then sampled and digitized at a 8012 Hz sampling rate using 8-bit mu-law encoding (equivalent to digital telephone line quality). A fourteen value mel power spectrum analysis was performed by spectrum analyzer 24 by the use of a discrete Fourier transform on 256 data point frames centered at intervals of 5 ms in order to simulate the fourteen reel power spectral analysis filters. Each 256 data point frame was windowed by a Hamming window function to reduce spectral leakage. Application of the discrete Fourier transform to the windowed data and forming the squared magnitude of the Fourier coefficients resulted in a 128 point uniform resolution power spectrum. However, the mel scale 14 band power spectrum has a frequency scale, F, logarithmically related to the normal linear frequency scale, f, as follows:

    F=ln (1+f/700).

This mel frequency scale is based on psychoacoustic frequency scaling experiments that show that human judgments of the relative pitch of two sinusoids are not equivalent to their actual arithmetic ratio. Thus, the above expression relates the judgment of perceived pitch, F, to the physical measurements of frequency, f. Note that although the mel power spectrum was used, a variety of power spectrum types, including those based on uniform or exponentially scaled band intervals, may also be effective in this application.

FIG. 11 shows a graphical plot of the mel frequency, F, versus actual frequency, f. Fourteen uniform width bands on the mel scale are shown on the vertical scale together with their projection onto the actual frequency scale as non-uniform bands that increase with increasing frequency f in accordance with the above expression. The lower abscissa scale relates the Fourier coefficient frequency index to the actual frequency. Thus, the 14 mel scale uniform bandwidth filters are simulated by summing the spectral power in the corresponding linear scale non-uniform bands, as shown. A more statistically stable mel scale power spectrum is generated each 5 ms or 200 times a second by averaging sequential pairs of spectrums which reduces the effective output spectrum rate to one each 10 ms (100 spectra per second). The next processing step performed by spectrum analyzer 24 is the forming of the logarithm of each mel spectrum to obtain a 14 component log mel spectral vector. Normalization of each set of log mel spectra corresponding to a given utterance was accomplished by calculating the mean, and extracting the maximum and minimum of all values in the set. The log mel spectral sets were then scaled and biased to cause the new mean to be zero and the maximum value of each log-spectrum to be one. The normalized log mel spectral vectors are made available on output lines 25 of spectrum analyzer 24.

Because, in one embodiment, the video frame rate of camera 27 in FIG. 1 was 60 frames/second while the spectral generation rate of spectrum analyzer was 100 spectra per second, an additional processing step was required to match the two rates. This is shown graphically in FIG. 1 by the dotted line box 26 labelled "interpolator" because it is only required if the video frame rate and the spectral frame rate are not the same. In this case, successive video data frames (vectors), each comprising the five vector components previously described, were interpolated using a (sin x)/x type of interpolation kernel in order to generate a new sequence of vectors at a rate of 100 per second. In other words, the value of the interpolated k^(th) sample occurring at time=k/100 seconds (k=0, ±1, ±2, . . . ), i.e., at uniform time intervals of 10 ms, is given by: ##EQU10## where: x(m/60) is the value of the vector component at time=m/60;

m is the original integer time index incremented at intervals of 1/60 seconds;

k is the new time index incremented at intervals of 1/100 seconds; and

X(k/100) is the interpolated values at the 1/100 second intervals.

This operation may be performed by standard convolution (digital filtering) techniques. Other possible interpolation kernels, including linear, quadratic, and higher order polynomial type kernels, could also be used for interpolation without significantly affecting the performance.

Thus, the five output lines 15 of visual vector generator 14 and the 14 output lines 25 of acoustic spectrum analyzer 24 combine to form a 29 component time varying audio-visual ("AV") vector to be applied to TDNN 200 as shown in FIG. 1.

In order to accommodate utterances that may be of variable length, as well as somewhat unpredictable in the time of utterance onset, the neural network employed for speech classification was chosen to be a time delay neural network (TDNN) similar to that described by Waibel, A., in an article entitled "Modular Construction of Time-Delay Neural Networks for Speech Recognition," in Neural Computation 1, 39-46 (1989).

FIGS. 12a and 12b show two functionally equivalent implementations of a TDNN. FIG. 12a comprises a uniformly tapped delay line 103 that accepts an input data sequence, x(t), on input line 101. The signals on delay line output taps 102 constitute a time sequence vector representative of the time sequence x(t) that has been applied to delay line 103 with the older data being to the right, that is each tap has an output that represents the input sequence value τ seconds earlier than the one immediately to the left. At any given instant of time, a time history of the input sequence is available at output taps 102. A selected set of contiguous taps are connected to lines 105 of neuron 110 labelled N1. Similarly, a set, having an equal number of tap 102 inputs but shifted by one delay unit, τ, is applied to neuron 110 labelled N2. As shown, the TDNN structure may have any number of additional neuron 110 units connected in the same manner, each shifted by one unit of delay, τ. Each neuron 110 is identical in stature and uses the same set of synaptic weights that are applied via lines 107. Thus, the output of each neuron 110 on output lines 109 represents a new data sequence {y_(k) (t)} shifted in time by the τ interval from its neighboring neuron 110 output.

The hardware conserving TDNN structure shown in FIG. 12b uses a single neuron 110 in a multiplexed mode. The input data sequence applied to tapped delay line 103 via input line 101 produces an image of its past values at τ second intervals on output lines 105 which are applied in parallel to neuron cell 110. The set of weights (identical to those used in FIG. 12a) are applied by input lines 107. Each τ interval, neuron cell 110 produces an output value on line 108 which is applied to a second tapped delay line 103. If the second delay line 103, which belongs to the next higher layer, has n taps as shown, each (n-1) τ second interval output taps 109 have a new n sample output vector that is identical to that which would be produced by the TDNN of FIG. 12a given the same input data weights.

Both structures of FIG. 12 are suitable for accepting a single time varying vector component on its input tap 101. Hence, the structures shown must be replicated for each component of the input vector. In general, the input weights would be unique for each component as determined by the training procedure.

The time delay unit, τ, is chosen so that aliasing of input data is minimized. If the value of τ is substantially less than the Nyquist sampling interval, the values at adjacent output taps 109 would be highly correlated and could lead to instabilities in training because of the excess degrees of freedom (redundancy) used in the neural network. If the interval, τ, is greater than the Nyquist sampling interval, aliasing is introduced that may lead to incorrect classification of input data. An acceptable value was determined to be approximately 10 milliseconds.

The number of delay elements per delay line has to be sufficient to ensure that a complete utterance epoch is spanned by the total delay of (n-1) τ, for the delay line structure with n output taps. For the class of utterances used, a span of 100 elements of 10 ms delay (1000 ms overall) was found to be adequate. Shorter spans of observation might degrade classification by not including the entire epoch and longer spans might degrade classification by including too much superfluous data.

In a practical speech recognition system, a multilayer vector input TDNN is required. This may be realized by cascading a number of single layer TDNNs so that the output sequence of a given layer becomes the input sequence to the next higher layer. In this manner, each layer maps an input time sequence into another output time sequence and ultimately maps the input time sequence of features (acoustic and visual) into a time sequence of attributes (classifications). Because the TDNN is a subset of feedforward neural networks it is trainable using the well-known backpropagation or other gradient descent algorithms. In addition, the TDNN has the desirable property of sequentially performing an identical transformation on a sequence of feature time windows at incrementally variable instances of time. Unlike more conventional feedforward neural networks, the input data sequence does not need to be precisely aligned to any absolute time reference in order to allow proper training. The TDNN structure acknowledges that patterns of interest within the input data sequence may occur anywhere in time, and during learning, the TDNN attempts to find exemplar patterns in the training data sequence regardless of when they occur.

However, if it is desired that the network output be a single set of attributes, a fixed duration feature sequence may be stored in the input delay line. The duration should be selected so that the time span (window) of the delay line is sure to include the sequence of interest. If each succeeding layer of the TDNN is a function of the window time span, the output for each attribute of the final stage may be averaged to a single value of the window interval.

FIGS. 13a and 13b show an example of a typical spoken utterance. In FIG. 13a, the electrical signal representative of the acoustic pressure is shown beginning at about 15.4 seconds and ending by 17.0 seconds. FIG. 13b shows the five components of the visual vector of the same utterance also beginning at about 15.4 seconds and ending about 1.6 second later (17.0 seconds). Thus, a window of 1 second duration would appear adequate to include most of both acoustic and visual signals.

For the embodiments described below, ten possible types of utterances were spoken into the speech recognition system and ten output values were generated at the output, each representing the probability of one of the ten possible utterances having been spoken. The network structure comprised two TDNN type layers followed by a stage of time averaging and probability normalization.

The five different embodiments of a speech recognition system to be described include:

a) the VO system using visual data only;

b) the AO system using acoustic data only;

c) the AxV system, a high level combination of the AO and VO system;

d) the AV system, with intermediate level (classification layer) combining of the AO and VO system; and

e) the full AV system with integrated processing of acoustic and visual data.

The architecture of a TDNN network is shown in FIG. 14 as used in a VO embodiment of a speech classifier 200 based on reading the visual facial markers only was implemented using the five distance features previously described. No acoustic data was used for this embodiment. The delay line input stage 210 comprises five delay line 103 units each with 100 output taps, each delay line 103 storing one of the five components of the visual vector provided by vector generator 14 of FIG. 1. The delay lines were simulated in software. The time increment, τ, between stored values is 10 ms so that the input time sequence window spans 1000 ms.

Hidden layer 220 comprises four rows of neuron cells, each having 81 neuron cells with 5×20 inputs to each cell. Each neuron in a given row is connected to 20 adjacent delay line values of the five delay lines. The reduction from five to four rows provided a modicum of data compression in the row dimension.

The classification layer 230 comprises 10 rows, one for each of the utterances to be detected and 72 neuron cells long. Each neuron accepts a field of 40 input lines: four rows from hidden layer 220 with ten contiguous hidden layer neural outputs. Each of the ten resulting rows has 72 neuron cells corresponding to the 72 possible values available from the time shifted output of the hidden layer. Each value at the output of the neurons in a given row of classification layer 230 corresponds to the probability that its corresponding utterance occurred during one-out-of-72 time intervals of 290 ms spaced at 10 ms intervals and spanning the original (input stage) data window of 1000 ms. The 290 ms resolution results from the 20 ms window used as an input to hidden layer 220 and the subsequent 10 unit window used as in hidden layer 220.

Averaging layer 240 comprises 10 neuron cells, each associated with a specific row of the classification layer and, hence, with a specific one of the ten allowable utterances. The values in each output row of classification layer 230 is indicative of the likelihood of that particular utterance having occurred during a 290 ms interval corresponding to that cell. These 72 inputs are combined by the corresponding neuron cell in the averaging layer to produce a value at its output representative of the probability that that utterance was spoken any place during the input stage 210 observation window of 1000 ms.

The acoustic only (AO) speech recognition system uses the same type of architecture as the VO system architecture shown in FIG. 14 with parameters adjusted to accommodate the 14 component log mel scale spectral feature vectors provided by spectrum analyzer 14 of FIG. 1 at intervals of 10 ms. Thus, the delay line input stage 210 had an array of 14 rows with 100 data values as inputs to hidden layer 220. Each row corresponds to a 1000 ms of log mel scale values from one of the set of 14 output filters of spectrum analyzer 14.

The AO hidden layer 220 comprised four rows of 96 neuron cells providing a 14 to 4 feature compression. Each neuron 221 is connected to 5 contiguous input stage time samples of each of the 14 input features (a total of 70 input feature values per neuron). The input window of 5 units (50 ms) is a typical time interval for most important acoustic features such as bursts and transitions. Thus, each successive neuron in a given row of hidden layer 220 accepts a 14 row by 5 column array of input values from input stage 210, shifted by one 10 ms interval.

Each neuron 231 of the AO classification layer 230 accepts a fan-in of 4 feature rows and 25 time columns from hidden layer 220. Each successive column of neurons 231 receiving inputs from hidden layer 220 that are shifted by one column time unit of 10 ms. The 25 column window was chosen so that the total effective time window seen by classification layer 230 is 290 ms (((5-1)+25)×10 ms), the same effective window used in the VO speech recognition network described above. A total of 720 neurons comprising AO classification layer 230 are arranged in 10 rows of 72 neurons each. As in the case of the VO speech recognition network, each of the 10 rows corresponds to one of the ten allowable utterances.

The AO TDNN classifier 200 output layer 240 comprises one column of 10 neuron cells 241, each cell connected to a distinct feature row of classification layer 230, a fan-in of 72. The values at the output of averaging layer 240 are each representative of the probability that its corresponding utterance occurred somewhere within the 1000 ms data window presented in input stage 210.

FIG. 15 is another embodiment of the AO TDNN, a functional equivalent to the network described above that minimizes the amount of hardware required by use of neuron cell multiplexing. The 14 log mel scale spectral data components of the acoustic vector signal is applied to delay line assembly (DLA) 302 comprising 14 tapped delay lines, each with a five data value capacity (in this context, a delay line is the equivalent of a shift register, analog or digital). Once the delay line is filled, neuron cell assembly (NCA1) 310 comprising four neuron cells (N1-N4), accepts the field of 14×5 values from the taps of DLA 302 and connects this 70 value field to each of the 70 input terminals of the four cells (N1-N4). NCA1 310 generates four distinct output values, one for each of the N1-N4 neuron cells and delivers them to the input of DLA 304, the hidden layer delay line assembly. DLA 304 clocks in the four values. 10 ms later, a new value arrives at the input to DLA 302 causing the contents to shift right by one unit and thus dropping-off the oldest set of 14 spectral data values. The new set of 14×5 data points is then applied to each of the cells of NCA 310 providing at its four output terminals a new four component vector that is clocked into the four delays of DLA 304. This process continues and eventually causes DLA 304 to be filled. At this point in time, the ten neuron cells (N5-N14) of NCA 312 each compute an output for the ten categories of utterances and deliver for storage the 10 component vector to DLA 306, which comprises ten delay lines each with a capacity of 72 values.

Thus, each 10 ms period thereafter, a new vector is calculated by NCA 310 which is shifted into DLA 304. In turn, NCA 312 computes a new ten component vector that is shifted into DLA 306. When DLA 306 is filled to capacity, the contents of each of the ten 1×72 delay lines is applied to its associated averaging neuron (N15-N24) of NCA3 14. The first set of 10 outputs represents the probability that its associated utterance was spoken during the first 290 ms.

As spectral data continue to arrive each 10 ms interval, new values of output probabilities are computed. Thus, the second computed value would correspond to the probability of an utterance occurring in a 290 ms window shifted by 10 ms from the first. Succeeding output probabilities correspond to 290 ms windows shifted by 10 ms relative to the previous window.

Although the operation of the TDNN of FIG. 15 was described for use in an AO speech recognition system, it is clear that the same principle of operations would apply if a similar structure were to be used in a VO speech recognition system, consistent with the prior descriptions of operation relating to FIG. 14.

The AO and VO systems described work independently on acoustic and visual speech data respectively. In other words, they are the equivalent of the system shown in FIG. 1 in which either the visual data or the acoustic data is nulled. It is reasonable to expect that the enhancement of an AO system by visual data would increase the classification accuracy especially under adverse acoustical environmental conditions. Three embodiments of a combined acoustic and visual speech recognition system will be described.

The first, referred to as the AxV system and shown in FIG. 16, comprises AO speech classifier 400 and VO speech classifier 500 together with an additional network layer 250 for combining the output probabilities of both systems into a single set of probabilities.

AO classifier 400 comprises a log mel scale spectrum analyzer 24 that accepts the electrical analog of a speech signal producing at its output a 10-component acoustic vector that is used as the input to acoustic TDNN classifier 410 as previously described. The output of AO classifier 400 is a probability vector describing the probability that each of the 10 allowable acoustic utterances were uttered, based on the acoustic data only. It is supplied to the probability combiner 250.

Similarly, VO classifier 500 uses an electrical image of the fiducial markers to define a lip and facial feature vector that is associated with the corresponding acoustical feature vector, as an input to lip and mouth position vector generator 14. The output visual vector generated by the fiducial marker tracking system and vector generator of unit 14 is applied to acoustic TDNN classifier 510 that produces a ten component visual probability vector which is supplied to probability combiner 250 representing the probability that each of the ten possible utterances occurred based solely on the visual data.

Let p(c:A) be the conditional probability that utterance c occurred, given the associated acoustic data vector, A, and p(c:V) be the conditional probability that utterance c occurred, given the associated visual data vector, V. Thus, p(c:A) corresponds to the c^(th) value of the vector output of classifier 410 based on vector A having been generated by spectrum analyzer 24, and p(c:V) corresponds to the c^(th) value of the vector output of classifier 510 based on vector V having been supplied by generator 14.

If vector A and V are independent, then the combined probability of the c^(th) utterance given A and V is

    p(c:A,V)=p(c:A)·p(c:V)/p(c)

where p(c) is the apriori probability of the utterance c occurring. This is the desired output from probability combiner 250.

Because P(c:A) and p(c:V) may not be strictly independent and because of errors in the estimation of these values, and because p(c) may not be known, the probability combiner actually generates the scaled product

    p(c:A,V)=k·p(c:A)·p(c:V)

where k is a normalizing factor used to scale the ten output probabilities so as to ensure that their sum is unity. Thus, probability combiner 250 forms the product of corresponding terms of each of the ten component input vectors and then sums the ten resulting product terms, ##EQU11## to form the normalized joint probability estimator ##EQU12## The product term in the above expression may be achieved using several means including analog or digital multipliers and sigma-pi (ΣΠ) neural cell network in which corresponding p(c:A) and p(c:V) terms are used to "gate" one another. Similarly, the same term may be generated by a 20 input ΣΠ neural cell network in which corresponding A and V probability vector components gate one another to form product terms and the output is formed by the sum of the product terms. Division of each of the products by the sum term may be implemented in compatible technology using analog or numerical computing means.

FIG. 17 shows a hardware conserving embodiment of the AxV system TDNN speech classifier 200. Acoustic and visual data vectors are clocked into delay line (DL) 302 and 301, respectively, at 10 ms intervals. The acoustic and visual data flows follow distinct paths up until the last NCA3 stage. By referring to FIG. 15, it may be seen that the input acoustic data vector in FIG. 17 is processed in the same manner and by the same hardware as in AO process up until NCA3 314 located at the averaging layer. Similarly, the visual data vector, V, in FIG. 17 is processed in the same manner as described in FIG. 14 for the VO system, except for the final NCA3 314 unit. The final probabilities, p(c:A,V), are formed by the ten sigma-pi neuron cells that comprise NCA3 314 and normalizer unit 255. Normalizer unit 255 applies the scaling factor, k, to form the ten output vector components p(c:A,V)=k·p(c:A)·p(c:V) for c=1, 2, . . . , 10.

Although a TDNN based AO acoustic processor has been described, it is not essential to the AxV embodiment. The AxV system may be designed using any acoustic speech recognition processor that is functionally equivalent, even though it does not use a TDNN. The outputs of the AO and VO subsystem would be combined as described in order to yield a more accurate classification than either system would yield by itself. Similarly, any acoustic vector generator that produces an effective acoustic vector which characterizes the utterance with reasonable statistical reliability may be used as an acoustic pre-processor in any of the combined acoustic and visual speech recognition systems.

FIG. 18, another embodiment for TDNN classifier 200 of FIG. 1, is referred to as the AV system classifier. In this case A and V vector inputs are processed separately through the hidden layer 220 comprising NCA1 310 and NCA1 309. The hidden layer output values are stored in DLA 304 and DLA 303 where the acoustic 4×25 field of values from DLA 304 and the 4×10 field of values from DLA 303 are applied to the ten 140-input neuron cells (N35-N44) of NCA2 313. This earlier merging of acoustic and visual data results in a richer set of cross terms upon which a solution may be sought in the training process, generally leading to better performance of the overall system.

After processing by NCA2 313, the results are passed on to the averaging layer 240. NCA3 315 comprises ten neuron cells (N45-N55), each of which operates on one of ten delay lines in DLA 307. The unnormalized probability product, p(c:a)·p(c:V), is formed by NCA3 315 and passed on to normalizer unit 255 for forming the final output probabilities, p(c:A,V).

FIG. 19 is another evolutionary step in the process of combining the processing of the acoustic and visual data at the earliest level possible. Upon receipt and storage of sufficient input acoustic and video data in DLA 302 and 301, respectively, the formation of cross-terms can occur in hidden layer 220 by having each of the 8 neurons operating on the combined 14×5 and 5×20 data fields available from DLA 302 and 301. The hidden layer output is stored in DLA 308 and passed on through NCA2 313 of classification layer 230. The output is then treated as previously described in FIG. 18.

In the TDNN structures of FIGS. 15, 17, 18, and 19, two basic types of neuron cells are employed. NCA1 of hidden layer 220 and NCA3 of averaging layer 240 comprise conventional McColluch-Pitts (M-P) type neuron cells as shown in FIG. 20. An input data vector x, provided on input terminals 601, is operated on by weighting vector w by use of weight multiplying elements 603. Summing network 605 sums the x_(i) w_(i) terms formed by multiplying elements 603 resulting in the vector dot-product, ##EQU13## being formed at the output of summer 605. The vector dot-product and offset is applied to activation function unit 609 that forms the output signal f(z)=f(x^(T) w+offset). An offset value may be provided by input 607 to summer 605.

Activation function unit 609 may have one of several types of transfer characteristics, such as those shown in FIG. 21. The transfer characteristic in FIG. 21a is, f(z)=tanh z, a hyperbolic tangent function of the input signal, z. This is one example of a large set of semi-linear sigmoidal squashing functions which may be used in NCA1 of the hidden layer. FIG. 21b shows a linear transfer function, f(z)=mz+offset. This form of activation function is used in the neuron cells of NCA 3 of averaging layer 240 (with offset equal to zero).

FIG. 21c shows an exponential activation function, f(z)=e^(z/T), where T is a positive value "temperature" parameter that effectively varies the base value, e^(1/T), that is exponentiated by input value z. The exponential form of activation function is used to form the estimated probability of a set of unknown variables (the set of allowable utterances) in accordance with Parallel Distributed Processing: Explorations in the Microstincture of Cognition, Vol. 1: Foundations, Rumelhart, et al., The MIT Press, Cambridge, Mass., 1986, Chapter 6, pp. 194-281. The exponential activation function is used in the M-P type neuron cells of NCA 2 of classification layer 230.

The second type of neuron cells used in NCA4 of the TDNN structure of FIG. 17 is known as a sigma-pi (ΣΠ) type cell, as shown in FIG. 22. Unlike the M-P cell of FIG. 20 where a single input data vector is applied to a set of controllable weights, {w_(i) }, ΣΠ neuron cells, in their simplest form, accept two input data vectors, x and y, at input terminals sets 701 and 702, respectively. Corresponding input vector components, x_(i) and y_(i), are applied multiplier units 703 to form the x_(i) ·y_(i) product terms that are summed by summer network 705 together with any offset term supplied on offset input terminal 707. Thus, the output of the summer, ##EQU14## is the vector dot-product of x and y plus offset which is applied as the input to activation function unit 709 with transfer characteristic, f(0). The ΣΠ neuron cell of FIG. 22 is used in the AxV network of FIG. 17 to form the sum of the product of the ten p(c:A) values and the corresponding ten p(c:V) values in NCA4 of averaging layer 240 (offset value equal to zero).

Because of the differentiable activation function units employed in the neuron cells (see FIGS. 20, 21, and 22), a form of the well-known backpropagation algorithm (described by Rumelhart, D. E., et at., in "Learning Internal Representations by Error Propagation," 318-362 (Chapter 8) of Parallel Distributed Processing, Vol. 1: Foundations, The MIT Press, Cambridge, Mass., 1960) was used to train the neural network weights. The error function of the output during training was a notable difference from that described in the above reference.

If a neural network's task is to select the class to which an input pattern belongs, if all input patterns belong to one and only one class (a one-out-of-n classification), and if the output of the neural network consists of n values representative of a probability distribution (i.e., sum of values equals one), the error metric for a single training classification attempt is

    error=-ln {p(c.sub.1)}

where c_(l) is the correct classification of the l^(th) class member and p(c₁) is the trial value of the output representing the probability that the input data belongs to class c_(l). Because the true probability of the input utterance being c_(l) is one (certainty), the above error expression may be re-written as the difference in the logarithms of the true and trial probabilities (p(c₁) and p(c₁) respectively), or

    error=ln {p(c.sub.1)}-ln {p(c.sub.1)}=ln {p(c.sub.1)/p(c.sub.1)}

This error metric involves the ratio of probabilities. Recalling that the probabilities were formed by the exponentiating activation function (FIG. 21c), the substitution of p(c₁)=e^(z).sbsp.1^(/T) and p(c₁)=e^(z).sbsp.1^(/T) yields

    error=ln {e.sup.(z.sbsp.1.sup.-z.sbsp.1.sup.)/T }=(z.sub.1 -z.sub.1)/T

where z₁ and z₁ are, respectively, the correct and trial values of the input z to the l^(th) classification neuron cell activation function network. Thus, the negative logarithm of the trial output probability is a measure of the error generated by the signal arriving at the classification level including the error contributed by the--weights of the l^(th) neuron cell of NCA2. Therefore, by using training patterns representative of all utterances to be classified, this logarithmic error function may be used to train the TDNN network.

Experiments were conducted using fiducial markers for visual information in the systems described for distinguishing between ten spoken letters: B, D, F, M, N, P, S, T, V, and Z. Acoustic and visual information was collected from four male subjects who are native speakers of American English. Each subject spoke each letter five times. One example of the letter P spoken by one subject was rendered unusable by an error in the visual tracking system resulting in a total of 199 rather than 200 tokens. Each token was converted into visual (VO), acoustic (AO) and full acoustic and video (AV) vectors suitable for use in classification layer 230, as previously described.

Four of the five repeated letter utterances for each of the ten letters spoken by the four speakers (160 patterns) were used for training. The remaining 39 containing four examples of each letter with the exception of three for the letter P as noted above were used for testing.

Each of the three networks were trained using the backpropagation algorithm for finding the set of weights causing minimum error for the training set examples. A learning rate constant of η=0.001 and momentum constant of a α=0.9 was used for the VO and AO cases while constants of η=0.0002 and α=0.9 were used for the full AV case. The full AV network was constructed by merging the AO and VO trained networks and adding cross-model connections between the hidden A and V layers and the classification layer. Learning was allowed to progress until the training error over the last few hundred training epochs showed negligible change. The software simulation of the spectrum analyzer 24, lip and mouth position vector generator 14, and TDNN speech classifier 200 running on a Sun Sparcstation 2 computer manufactured by Sun Microsystems, Inc. 2550 Garcia Avenue, Mountain View, Calif. 94043-1100. Training took approximately 20 seconds per epoch for the most complicated full AV network and less for the others. At every 50 epochs of training, the weights in the network were recorded and the testing set error was computed. FIG. 23 shows the progression of error reduction as a function of the number of training epochs used for VO, AO, and full AV cases. The dotted line represents the error when using the testing set of input data while the solid line is the error observed when using the training set for testing. As might be expected, the latter set generally produced lower errors.

After the "best" set of weights was established by the training process for each of the three cases, confusion matrices were generated for the testing data. For each letter utterances, the average of the output distributions over all the testing set examples of that letter was computed. FIG. 24 shows the resulting confusion matrices for the VO, AO, and AxV and the full AV networks. Each vertical column is labelled by the spoken letter presented as the input; each horizontal row represents the output letters selected with their associated probabilities indicated by the site of each disk. The percentage number below each confusion matrix is the overall accuracy of that system.

Note the confusion of the /bi/ and /di/ phonemes in the AO network and the unsymmetric confusion of /bi/ and /pi/ in the VO system. Thus, while /pi/ may be easily confused for /bi/ in the VO system, they are readily distinguished in the AO system. Conversely, the VO system readily distinguishes between /bi/ and /di/. Also note the acoustic (AO) similarity of the /em/ and /en/ phonemes that differ primarily in the acoustically subtle feature of nasality and are clearly distinguishable in the VO system. The VO system tends to confuse /di/ and /ti/ but not so for the AO system. The AxV system mostly eliminates these and other confusions as evidenced by the high probability of classification along the main diagonal.

Although it is reasonable to expect that the full AV system with an overall accuracy of 87% should be better than the AxV system with its measured 91% accuracy because the full AV system can learn associations at a lower (hidden layer) level the test results indicate otherwise. This result strongly suggests that the 19 element full AV vector did not accurately maintain synchronism between the acoustic 10 elements and visual 5 element portions of the complete vector because they were processed separately through their respective pre-processors. In the case of the AxV system, synchronism was less critical because the acoustic and visual vectors were processed through separate TDNNs. In other words, low-level correlations in the training patterns might have been altered so that the full AV net could not take advantage of that information.

Similar performance for the AxV system has been demonstrated when the "ROI" technique was used in which no fiducial markers are required.

The relative insensitivity of the AxV system to acoustic noise was demonstrated by a simulation in which pink noise with a standard deviation of 0.4 was added by adding a random variable to each A vector produced by the spectrum analyzer. Under these conditions, the AO network had an overall accuracy of 43% while the AxV network had an accuracy of 74%. This improved accuracy was achieved without adjustment of any free parameters such as modifying the ratio of acoustic to visual evidence.

In the preceding description, numerous specific details are set forth, such as a specific number of utterances, data samples, devices, etc., in order to provide a thorough understanding of the embodiments. It will be obvious, however, to one skilled in the an that the present invention may be practiced without these specific details. In other instances, well-known circuits have not been shown in detail, or have been shown in block diagram form only, in order to avoid unnecessarily obscuring the present invention. 

What is claimed is:
 1. A method for extracting a visual feature vector from a sequence of images, each having a plurality of horizontal raster lines, of frontal views of a speaker's face in a speech classification system, the method comprising the following steps:a) sampling and quantizing each image at uniform intervals along each horizontal raster line of the image to produce an image represented by an array of pixels, each pixel value representing gray-scale level; b) preconditioning the pixel image by spatially smoothing and enhancing edges separating regions of greater and less gray-scale intensity using spatial convolution techniques; c) thresholding the preconditioned pixel image by using a threshold value for determining a left eye area, a right eye area, and a mouth area, wherein the threshold value is used to define each of the left eye area, the right eye area, and the mouth area; d) calculating a left eye area location, a right eye area location, and a mouth area location from the left eye area, the right eye area, and the mouth area, respectively; e) establishing an eye line segment as a straight line connecting the left and right eye area locations; f) establishing a vertical axis of symmetry as a straight line that is perpendicular to and bisects the eye line segment connecting the left and right eye area locations; g) establishing a mouth line by passing a straight line through the mouth area location, the mouth line being perpendicular to the vertical axis of symmetry; h) selecting image pixels along the axis of symmetry in the vicinity of the mouth line to form a vertical sectional view of gray-scale pixel values; i) selecting image pixels along the mouth line in the vicinity of the axis of symmetry to form a horizontal sectional view of gray-scale values; and j) selecting a set of pixels and associated pixel values that occur at the peaks and valleys (maximas and minimas) of the vertical and the horizontal gray-scale pixel value sectional views as a set of elements of a visual feature vector.
 2. The method of claim 1 wherein the step of selecting image pixels along the mouth line results in the selected pixels corresponding to a left and a right mouth corner position, and wherein the step of selecting image pixels along the axis of symmetry results in the selected pixels corresponding to an upper lip, a mouth, and a lower lip position.
 3. The method of claim 2 further comprising the following steps:k) computing a mouth corner-to-corner distance measure by taking the difference between the location of the selected pixels corresponding to the left and right mouth corner positions; l) computing a vertical mouth separation distance by taking the difference between the location of the selected pixels corresponding to the upper and lower lip positions; m) computing horizontal mouth corner-to-corner speed by taking the difference between mouth corner-to-corner distances of adjacent sequential image frames; n) computing a set of vertical speeds of an upper lip position, of a mouth area position, and of a lower lip position by taking the difference between pixel positions corresponding to upper lip positions, mouth area positions, and lower lip positions of adjacent sequential image frames; o) computing a set of pixel gray-level value changes with respect to time by taking the difference in pixel values of the selected set of pixels between adjacent sequential image frames; and p) forming a visual feature vector from the values calculated in steps (k) through (o) and from the selected set of pixel values.
 4. The method of claim 1 wherein the step of selecting image pixels along the mouth line selects pixels so that the selected pixels correspond to a left and right mouth corner position and wherein the step of selecting image pixels along the axis of symmetry selects pixels so that the selected pixels correspond to a lower nose area position, an upper lip position, a mouth area position, a lower lip position, and a chin area position, the lower nose area position and the chin area position respectively defining the upper and lower limits of the vertical sectional view of gray-scale pixel values.
 5. The method of claim 1 further comprising the step of frame-to-frame temporal smoothing for noise reduction by convolving sequential image frames with a prescribed low-pass filter kernel.
 6. An apparatus for extracting a visual feature vector from a sequence of raster-scanned video images of frontal views of a speaker's face for use in a speech classification system, the apparatus comprising:a) analog-to-digital conversion means for sampling and quantizing each raster-scanned video image at uniform intervals along each raster scan to produce an image of pixels representing gray-scale level centered at the uniform intervals; b) filter means for preconditioning the pixel image by spatially smoothing and enhancing edges separating regions of greater and less gray-scale intensity using spatial convolution techniques; c) threshold means using a threshold level for thresholding the preconditioned pixel image for determining a left eye area, a right eye area, and a mouth area, wherein the threshold value is used to define each of the left eye area, the right eye area, and the mouth area; d) computing means for calculating a left eye area location, a right eye area location, and a mouth area location from the left eye area, the right eye area, and the mouth area, respectively; e) computing means for establishing an eye line as a straight line passing through the left and right eye area locations; f) computing means for establishing a vertical axis of symmetry as the straight line that is perpendicular to and bisects the eye line segment connecting the left and right eye area locations; g) computing means for establishing a mouth line by passing a straight line through the mouth area location, the line being perpendicular to the vertical axis of symmetry; h) computing means for selecting image pixels along the axis of symmetry in the vicinity of the mouth line to form a vertical sectional view of gray-scale pixel values; i) computing means for selecting image pixels along the mouth line in the vicinity of the axis of symmetry to form a horizontal sectional view of gray-scale pixel values; and j) computing means for selecting a set of pixels and associated pixel values that occur at peaks and valleys (maximas and minimas) of the vertical and horizontal gray-scale pixel value sectional views as a set of elements of a visual feature vector.
 7. The apparatus of claim 6 wherein the filter and threshold means are computing means.
 8. The apparatus of claim 7 wherein the computing means are a programmable computer.
 9. A speech recognition system for recognizing utterances belonging to a preestablished set of allowable candidate utterances, comprising:a) a visual feature vector extraction apparatus for forming a sequence of visual feature vectors from a sequence of raster-scanned video images of a speaker's face, comprising:i) analog-to-digital conversion means for sampling and quantizing each raster-scanned video image at uniform intervals along each raster scan to produce an image of pixels representing gray-scale centered at the uniform intervals; ii) filter means for preconditioning the pixel image by spatially smoothing and enhancing edges separating regions of greater and less gray-scale intensity using convolution techniques; iii) threshold means using a threshold level for thresholding the preconditioned pixel image for determining a left eye area, a right eye area, and a mouth area, wherein the threshold value is used to define each of the left eye area, the right eye area, and the mouth area; iv) computing means for calculating a left eye area location, a right eye area location and a mouth area location from the left eye area, the right eye area, and the mouth area, respectively; v) computing means for establishing an eye line as a straight line passing through the left and right eye area locations; vi) computing means for establishing a vertical axis of symmetry as the straight line that is perpendicular to and bisects the eye line segment connecting the left and right eye area locations; vii) computing means for establishing a mouth line by passing a straight line through the mouth area location, the mouth line being perpendicular to the vertical axis of symmetry; viii) computing means for selecting image pixels along the axis of symmetry in the vicinity of the mouth line to form a vertical sectional view of gray-scale pixel values; ix) computing means for selecting image pixels along the mouth line in the vicinity of the axis of symmetry to form a horizontal sectional view of gray-scale pixel values; and x) computing means for selecting a set of pixels and associated pixel values that occur at peaks and valleys (maximas and minimas) of the vertical and horizontal gray-scale pixel value sectional views as a set of elements of a visual feature vector; b) an acoustic feature vector extraction apparatus for converting signals representative of acoustic speech occurring concomitantly with the raster-scanned video images into a corresponding sequence of acoustic feature vectors; and c) a neural network classifying apparatus for generating a conditional probability distribution of the allowable speech utterances by accepting and operating on the acoustic and visual feature vector sequences respectively supplied by the acoustic and visual feature vector extraction apparatus.
 10. The system of claim 9 wherein the visual feature vector extraction apparatus comprises a programmable computer for performing the filter, threshold, and computing means functions.
 11. The system of claim 9 wherein the step of selecting image pixels along the mouth line selects pixels so that the selected pixels correspond to a left and a right mouth corner position and wherein the step of selecting image pixels along the axis of symmetry selects pixels so that the selected pixels correspond to a lower nose area position, an upper lip position, a mouth area position, a lower lip position, and a chin area position, the lower nose area position and the chin area position respectively defining the upper and lower limits of the vertical sectional view of gray-scale pixel values.
 12. The system of claim 11 wherein the computing means for selecting a set of pixel and associated pixel values as a set of elements of a visual feature vector further comprises computer means for the following steps:aa) computing a mouth corner-to-corner distance measure by taking the difference between the location of the selected pixels corresponding to the left and right mouth corner positions; bb) computing a vertical mouth separation distance by taking the difference between the location of the selected pixels corresponding to the upper and lower lip positions; cc) computing horizontal mouth corner-to-corner speed by taking the difference between mouth corner-to-corner distances of adjacent sequential image frames; dd) computing a set of vertical speeds of an upper lip position, of a mouth area position, and of a lower lip position by taking the difference between pixel positions corresponding to upper lip positions, mouth area positions, and lower lip positions of adjacent sequential image frames; ee) computing a set of pixel gray-level value changes with respect to time by taking the difference in pixel values of the selected set of pixels between adjacent sequential image frames; and ff) forming a visual feature vector from the values calculated in steps (a) through (e) and from the selected set of pixel values.
 13. The system of claim 9 further comprising means for temporal smoothing across successive pixel image frames for noise reduction by convolution with a prescribed low-pass filter kernel. 